Computer vision involves acquiring, processing, analyzing, and understanding images for use in applications. Traditionally, a processor coupled to a sensor acquires image data from the sensor and performs certain computer vision operations on the acquired image data for detecting features and objects associated with the features. Features may include edges, corners, gradients, or textures. In some instances, features may also include more complex features, such as human faces, facial expressions and gestures. Programs executing on the processor may utilize the detected features in a variety of applications, such as plane detection, object classification, face detection, smile detection, and gesture detection.
Much effort has been made in recent years to enable computing devices to detect or classify features and objects in the field of view of a computing device. Computing devices, especially mobile devices, are generally very power-sensitive. However, traditionally, detecting features and objects in the field of view of the computing device using a camera requires significant processing resources, resulting in high power consumption and low battery life in computing devices, such as mobile devices. In always-on feature detection applications, capturing images continuously, storing the images, and extracting all features in an image before making a final decision based on all of the extracted features could consume a large amount of unnecessary power and significantly reduce the battery life of a computing device.